package com.lxj.role.controller;

import com.lxj.role.service.RoleService;
import com.lxj.utils.common.CommonResult;
import com.lxj.utils.entity.Role;
import com.lxj.utils.entity.RolePermission;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/role")
public class RoleController {
    @Autowired
    private RoleService roleService;
    @PostMapping("/findAll")
    public CommonResult findAll(Role role){
        return roleService.findAll(role);
    }
    @PostMapping("/delete")
    public CommonResult delete(Integer[] id){
        return roleService.delete(id);
    }
    @PostMapping("/edit")
    public CommonResult edit(Role role){
        return roleService.edit(role);
    }
    @PostMapping("/add")
    public CommonResult add( Role role){
        return roleService.add(role);
    }
    /**
     * 直接将权限的id存到关联表，
     * @return
     */
    //给角色分配权限
    @PostMapping("/addPs")
    public CommonResult addPs( RolePermission rolePermission){
        return roleService.addPs(rolePermission);
    }
//    //给角色分配用户，直接在关联表存储用户id
//    @PostMapping("/addMana")
//    public CommonResult addMana(Integer[] id){
//        return roleService.addMana(id);
//    }
    @PostMapping("findById")
    public CommonResult findbyId(Integer id){
        return roleService.findById(id);
    }

    /**
     * 根据roleId查询当前角色所拥有的权限
     * @param id
     * @return
     */
    @PostMapping("/findByRoleId")
    public CommonResult findByRoleId(Integer id){
        return roleService.findByRoleId(id);
    }
    //添加权限
    @PostMapping("/addPermission")
    public CommonResult addPermission(Integer[] ids,Integer id){
        return roleService.addPermission(ids,id);
    }
    //剔除权限
    @GetMapping("/deletePermission")
    public CommonResult deletePermission(Integer[] ids,Integer id){
        Assert.notNull(ids,"权限id不能为空");
        Assert.notNull(id,"角色id不能为空");
        return roleService.deletePermission(ids,id);
    }

    /**
     * 根据角色id查询当前角色拥有的权限信息
     * @param id
     * @return
     */
    @PostMapping("/searchById")
    public CommonResult searchById(Integer id){
        Assert.notNull(id,"没有角色id信息");
        return roleService.searchById(id);
    }
    /**
     * 查询所有的角色信息，用来给用户分配角色，这个方法没有分页数据
     */
    @PostMapping("/searchAll")
    public CommonResult searchAll(){
        return roleService.searchAll();
    }

}
